Database systems are susceptible to failure for a variety of reasons including both software and hardware related issues. Various techniques are employed to ensure the consistency of a database and to, additionally, ensure that databases can be recovered should errors occur. The point at which a transaction can be rolled back to can be referred to as a savepoint. If an error occurs in the midst of a multiple-statement transaction, the database system can recover from the error by rolling back to a most recent savepoint without needing to abort the entire transaction.